#ifndef EXPRESSION_H
#define EXPRESSION_H

typedef _Expression Expression
typedef _ExpressionType ExpressionType

struct _Expression {
	const ExpressionType* type;
};

struct _ExpressionType {
	int (*evaluate)(Expression*, void*);
};

extern const ExpressionType expressionType;

Expression* Expression_init(Expression* self);

#endif /* EXPRESSION_H */